#include <iostream>
#include <stack>
#include <string>
using namespace std;
string SKZ;
bool check(string string_SKZ) {
    stack <char> st;
    string x = "([{";
    string y = ")]}";
    for (char i : string_SKZ) {
        if (x.find(i) != string::npos) {
            st.push(i);
        } else {
            if (st.empty()) {
                return false;
            } else {
                if (st.top() == x[y.find(i)]) {
                    st.pop();
                } else {
                    return false;
                }
            }
        }
    }
    if (!st.empty()) {
        return false;
    }
    return true;
}
int main() {
    cin >> SKZ;
    cout << check(SKZ) << endl;
}



